home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2001 May / SGI IRIX Base Documentation 2001 May.iso / usr / share / catman / p_man / cat3 / libblas / trmm.z / trmm
Encoding:
Text File  |  1998-10-30  |  19.9 KB  |  331 lines

  1.  
  2.  
  3.  
  4. ____TTTTRRRRMMMMMMMM((((3333FFFF))))                                                            ____TTTTRRRRMMMMMMMM((((3333FFFF))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      dtrmm, strmm, ztrmm, ctrmm - BLAS level three Matrix Product
  10.  
  11.  
  12. FFFFOOOORRRRTTTTRRRRAAAANNNN 77777777 SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  13.      ssssuuuubbbbrrrroooouuuuttttiiiinnnneeee ddddttttrrrrmmmmmmmm(((( ssssiiiiddddeeee,,,, uuuupppplllloooo,,,, ttttrrrraaaannnnssssaaaa,,,, ddddiiiiaaaagggg,,,, mmmm,,,, nnnn,,,, aaaallllpppphhhhaaaa,,,, aaaa,,,, llllddddaaaa,,,, bbbb,,,, llllddddbbbb ))))
  14.            cccchhhhaaaarrrraaaacccctttteeeerrrr****1111        ssssiiiiddddeeee,,,,uuuupppplllloooo,,,,ttttrrrraaaannnnssssaaaa,,,,ddddiiiiaaaagggg
  15.            iiiinnnntttteeeeggggeeeerrrr            mmmm,,,, nnnn,,,, llllddddaaaa,,,, llllddddbbbb
  16.            ddddoooouuuubbbblllleeee pppprrrreeeecccciiiissssiiiioooonnnn   aaaallllpppphhhhaaaa
  17.            ddddoooouuuubbbblllleeee pppprrrreeeecccciiiissssiiiioooonnnn   aaaa(((( llllddddaaaa,,,,****)))),,,, bbbb((((llllddddbbbb,,,,****))))
  18.  
  19.      ssssuuuubbbbrrrroooouuuuttttiiiinnnneeee ssssttttrrrrmmmmmmmm(((( ssssiiiiddddeeee,,,, uuuupppplllloooo,,,, ttttrrrraaaannnnssssaaaa,,,, ddddiiiiaaaagggg,,,, mmmm,,,, nnnn,,,, aaaallllpppphhhhaaaa,,,, aaaa,,,, llllddddaaaa,,,, bbbb,,,, llllddddbbbb ))))
  20.            cccchhhhaaaarrrraaaacccctttteeeerrrr****1111        ssssiiiiddddeeee,,,,uuuupppplllloooo,,,,ttttrrrraaaannnnssssaaaa,,,,ddddiiiiaaaagggg
  21.            iiiinnnntttteeeeggggeeeerrrr            mmmm,,,, nnnn,,,, llllddddaaaa,,,, llllddddbbbb
  22.            rrrreeeeaaaallll               aaaallllpppphhhhaaaa
  23.            rrrreeeeaaaallll               aaaa(((( llllddddaaaa,,,,****)))),,,, bbbb((((llllddddbbbb,,,,****))))
  24.  
  25.      ssssuuuubbbbrrrroooouuuuttttiiiinnnneeee zzzzttttrrrrmmmmmmmm(((( ssssiiiiddddeeee,,,, uuuupppplllloooo,,,, ttttrrrraaaannnnssssaaaa,,,, ddddiiiiaaaagggg,,,, mmmm,,,, nnnn,,,, aaaallllpppphhhhaaaa,,,, aaaa,,,, llllddddaaaa,,,, bbbb,,,, llllddddbbbb ))))
  26.            cccchhhhaaaarrrraaaacccctttteeeerrrr****1111        ssssiiiiddddeeee,,,,uuuupppplllloooo,,,,ttttrrrraaaannnnssssaaaa,,,,ddddiiiiaaaagggg
  27.            iiiinnnntttteeeeggggeeeerrrr            mmmm,,,, nnnn,,,, llllddddaaaa,,,, llllddddbbbb
  28.            ddddoooouuuubbbblllleeee ccccoooommmmpppplllleeeexxxx     aaaallllpppphhhhaaaa
  29.            ddddoooouuuubbbblllleeee ccccoooommmmpppplllleeeexxxx     aaaa(((( llllddddaaaa,,,,****)))),,,, bbbb((((llllddddbbbb,,,,****))))
  30.  
  31.      ssssuuuubbbbrrrroooouuuuttttiiiinnnneeee ccccttttrrrrmmmmmmmm(((( ssssiiiiddddeeee,,,, uuuupppplllloooo,,,, ttttrrrraaaannnnssssaaaa,,,, ddddiiiiaaaagggg,,,, mmmm,,,, nnnn,,,, aaaallllpppphhhhaaaa,,,, aaaa,,,, llllddddaaaa,,,, bbbb,,,, llllddddbbbb ))))
  32.            cccchhhhaaaarrrraaaacccctttteeeerrrr****1111        ssssiiiiddddeeee,,,,uuuupppplllloooo,,,,ttttrrrraaaannnnssssaaaa,,,,ddddiiiiaaaagggg
  33.            iiiinnnntttteeeeggggeeeerrrr            mmmm,,,, nnnn,,,, llllddddaaaa,,,, llllddddbbbb
  34.            ccccoooommmmpppplllleeeexxxx            aaaallllpppphhhhaaaa
  35.            ccccoooommmmpppplllleeeexxxx            aaaa(((( llllddddaaaa,,,,****)))),,,, bbbb((((llllddddbbbb,,,,****))))
  36.  
  37.  
  38. CCCC SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  39.      vvvvooooiiiidddd ddddttttrrrrmmmmmmmm(((( ssssiiiiddddeeee,,,, uuuupppplllloooo,,,, ttttrrrraaaannnnssssaaaa,,,, ddddiiiiaaaagggg,,,, mmmm,,,, nnnn,,,, aaaallllpppphhhhaaaa,,,, aaaa,,,, llllddddaaaa,,,, bbbb,,,, llllddddbbbb ))))
  40.            OOOOppppeeeerrrraaaattttiiiioooonnnnSSSSiiiiddddeeee         ssssiiiiddddeeee;;;;
  41.            MMMMaaaattttrrrriiiixxxxTTTTrrrriiiiaaaannnngggglllleeee        uuuupppplllloooo;;;;
  42.            MMMMaaaattttrrrriiiixxxxTTTTrrrraaaannnnssssppppoooosssseeee       ttttrrrraaaannnnssssaaaa;;;;
  43.            MMMMaaaattttrrrriiiixxxxUUUUnnnniiiittttTTTTrrrriiiiaaaannnngggguuuullllaaaarrrr  ddddiiiiaaaagggg;;;;
  44.            IIIInnnntttteeeeggggeeeerrrr               mmmm,,,, nnnn,,,, llllddddaaaa,,,, llllddddbbbb;;;;
  45.            ddddoooouuuubbbblllleeee                aaaallllpppphhhhaaaa;;;;
  46.            ddddoooouuuubbbblllleeee                ((((****aaaa))))[[[[llllddddaaaa****kkkk]]]],,,, ((((****bbbb))))[[[[llllddddaaaa****nnnn]]]];;;;
  47.  
  48.      vvvvooooiiiidddd ssssttttrrrrmmmmmmmm(((( ssssiiiiddddeeee,,,, uuuupppplllloooo,,,, ttttrrrraaaannnnssssaaaa,,,, ddddiiiiaaaagggg,,,, mmmm,,,, nnnn,,,, aaaallllpppphhhhaaaa,,,, aaaa,,,, llllddddaaaa,,,, bbbb,,,, llllddddbbbb ))))
  49.            OOOOppppeeeerrrraaaattttiiiioooonnnnSSSSiiiiddddeeee         ssssiiiiddddeeee;;;;
  50.            MMMMaaaattttrrrriiiixxxxTTTTrrrriiiiaaaannnngggglllleeee        uuuupppplllloooo;;;;
  51.            MMMMaaaattttrrrriiiixxxxTTTTrrrraaaannnnssssppppoooosssseeee       ttttrrrraaaannnnssssaaaa;;;;
  52.            MMMMaaaattttrrrriiiixxxxUUUUnnnniiiittttTTTTrrrriiiiaaaannnngggguuuullllaaaarrrr  ddddiiiiaaaagggg;;;;
  53.            IIIInnnntttteeeeggggeeeerrrr               mmmm,,,, nnnn,,,, llllddddaaaa,,,, llllddddbbbb;;;;
  54.            ffffllllooooaaaatttt                 aaaallllpppphhhhaaaa;;;;
  55.            ffffllllooooaaaatttt                 ((((****aaaa))))[[[[llllddddaaaa****kkkk]]]],,,, ((((****bbbb))))[[[[llllddddaaaa****nnnn]]]];;;;
  56.  
  57.      vvvvooooiiiidddd zzzzttttrrrrmmmmmmmm(((( ssssiiiiddddeeee,,,, uuuupppplllloooo,,,, ttttrrrraaaannnnssssaaaa,,,, ddddiiiiaaaagggg,,,, mmmm,,,, nnnn,,,, aaaallllpppphhhhaaaa,,,, aaaa,,,, llllddddaaaa,,,, bbbb,,,, llllddddbbbb ))))
  58.            OOOOppppeeeerrrraaaattttiiiioooonnnnSSSSiiiiddddeeee         ssssiiiiddddeeee;;;;
  59.            MMMMaaaattttrrrriiiixxxxTTTTrrrriiiiaaaannnngggglllleeee        uuuupppplllloooo;;;;
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. ____TTTTRRRRMMMMMMMM((((3333FFFF))))                                                            ____TTTTRRRRMMMMMMMM((((3333FFFF))))
  71.  
  72.  
  73.  
  74.            MMMMaaaattttrrrriiiixxxxTTTTrrrraaaannnnssssppppoooosssseeee       ttttrrrraaaannnnssssaaaa;;;;
  75.            MMMMaaaattttrrrriiiixxxxUUUUnnnniiiittttTTTTrrrriiiiaaaannnngggguuuullllaaaarrrr  ddddiiiiaaaagggg;;;;
  76.            IIIInnnntttteeeeggggeeeerrrr               mmmm,,,, nnnn,,,, llllddddaaaa,,,, llllddddbbbb;;;;
  77.            ZZZZoooommmmpppplllleeeexxxx               aaaallllpppphhhhaaaa;;;;
  78.            ZZZZoooommmmpppplllleeeexxxx               ((((****aaaa))))[[[[llllddddaaaa****kkkk]]]],,,, ((((****bbbb))))[[[[llllddddaaaa****nnnn]]]];;;;
  79.  
  80.      vvvvooooiiiidddd ccccttttrrrrmmmmmmmm(((( ssssiiiiddddeeee,,,, uuuupppplllloooo,,,, ttttrrrraaaannnnssssaaaa,,,, ddddiiiiaaaagggg,,,, mmmm,,,, nnnn,,,, aaaallllpppphhhhaaaa,,,, aaaa,,,, llllddddaaaa,,,, bbbb,,,, llllddddbbbb ))))
  81.            OOOOppppeeeerrrraaaattttiiiioooonnnnSSSSiiiiddddeeee         ssssiiiiddddeeee;;;;
  82.            MMMMaaaattttrrrriiiixxxxTTTTrrrriiiiaaaannnngggglllleeee        uuuupppplllloooo;;;;
  83.            MMMMaaaattttrrrriiiixxxxTTTTrrrraaaannnnssssppppoooosssseeee       ttttrrrraaaannnnssssaaaa;;;;
  84.            MMMMaaaattttrrrriiiixxxxUUUUnnnniiiittttTTTTrrrriiiiaaaannnngggguuuullllaaaarrrr  ddddiiiiaaaagggg;;;;
  85.            IIIInnnntttteeeeggggeeeerrrr               mmmm,,,, nnnn,,,, llllddddaaaa,,,, llllddddbbbb;;;;
  86.            CCCCoooommmmpppplllleeeexxxx               aaaallllpppphhhhaaaa;;;;
  87.            CCCCoooommmmpppplllleeeexxxx               ((((****aaaa))))[[[[llllddddaaaa****kkkk]]]],,,, ((((****bbbb))))[[[[llllddddaaaa****nnnn]]]];;;;
  88.  
  89.  
  90.  
  91. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  92.      ddddttttrrrrmmmmmmmm, ssssttttrrrrmmmmmmmm, zzzzttttrrrrmmmmmmmm and ccccttttrrrrmmmmmmmm perform one of the matrix-matrix operations
  93.  
  94.           B := alpha*op( A )*B,   or   B := alpha*B*op( A )
  95.  
  96.      where alpha is a scalar, B is an m by n matrix, A is a unit, or non-unit,
  97.      upper or lower triangular matrix and op( A ) is one of
  98.  
  99.           op( A ) = A   or   op( A ) = A'   or   op( A ) = conjg( A' ).
  100.  
  101.  
  102. PPPPAAAARRRRAAAAMMMMEEEETTTTEEEERRRRSSSS
  103.      ssssiiiiddddeeee    On entry, ssssiiiiddddeeee specifies whether op( A ) multiplies B from the
  104.              left or right as follows:
  105.  
  106.  
  107.                   FFFFOOOORRRRTTTTRRRRAAAANNNN
  108.                   side = 'L' or 'l'   B := alpha*op( A )*B.
  109.                   side = 'R' or 'r'   B := alpha*B*op( A ).
  110.  
  111.                   CCCC
  112.                   side = LeftSide     B := alpha*op( A )*B.
  113.                   side = RightSide    B := alpha*B*op( A ).
  114.  
  115.              Unchanged on exit.
  116.  
  117.      uuuupppplllloooo    On entry, uuuupppplllloooo specifies whether the matrix A is an upper or
  118.              lower triangular matrix as follows:
  119.  
  120.  
  121.                   FFFFOOOORRRRTTTTRRRRAAAANNNN
  122.                   uplo = 'U' or 'u'   A is an upper triangular matrix.
  123.                   uplo = 'L' or 'l'   A is a lower triangular matrix.
  124.  
  125.                   CCCC
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. ____TTTTRRRRMMMMMMMM((((3333FFFF))))                                                            ____TTTTRRRRMMMMMMMM((((3333FFFF))))
  137.  
  138.  
  139.  
  140.                  uplo = UpperTriangle A is an upper triangular matrix.
  141.                   uplo = LowerTriangle     A is a lower triangular matrix.
  142.  
  143.              Unchanged on exit.
  144.  
  145.      ttttrrrraaaannnnssssaaaa  On entry, ttttrrrraaaannnnssssaaaa specifies the form of op( A ) to be used in the
  146.              matrix multiplication as follows:
  147.  
  148.                   FFFFOOOORRRRTTTTRRRRAAAANNNN
  149.                   transa = 'N' or 'n'           op( A ) = A.
  150.                   transa = 'T' or 't'           op( A ) = A'.
  151.                   transa = 'C' or 'c'           op( A ) = conjg( A' ).
  152.  
  153.                   CCCC
  154.                   transa = NoTranspose          op( A ) = A.
  155.                   transa = Transpose            op( A ) = A'.
  156.                   transa = ConjugateTranspose   op( A ) = conjg( A' ).
  157.  
  158.              Unchanged on exit.
  159.  
  160.      ddddiiiiaaaagggg    On entry, ddddiiiiaaaagggg specifies whether or not A is unit triangular as
  161.              follows:
  162.  
  163.                   FFFFOOOORRRRTTTTRRRRAAAANNNN
  164.                   diag = 'U' or 'u'   A is assumed to be unit triangular.
  165.                   diag = 'N' or 'n'   A is not assumed to be unit triangular.
  166.  
  167.                   CCCC
  168.                   diag = UnitTriangular         A is assumed to be unit
  169.                                                 triangular.
  170.                   diag = NotUnitTriangular      A is not assumed to be unit
  171.                                                 triangular.
  172.  
  173.              Unchanged on exit.
  174.  
  175.      mmmm       On entry, mmmm specifies the number of rows of B. mmmm must be at least
  176.              zero.
  177.              Unchanged on exit.
  178.  
  179.      nnnn       On entry, nnnn specifies the number of columns of B.  nnnn must be at
  180.              least zero.
  181.              Unchanged on exit.
  182.  
  183.      aaaallllpppphhhhaaaa   On entry, aaaallllpppphhhhaaaa specifies the scalar alpha. When aaaallllpppphhhhaaaa is zero
  184.              then aaaa is not referenced and bbbb need not be set before entry.
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. ____TTTTRRRRMMMMMMMM((((3333FFFF))))                                                            ____TTTTRRRRMMMMMMMM((((3333FFFF))))
  203.  
  204.  
  205.  
  206.              Unchanged on exit.
  207.  
  208.      aaaa       An array containing the matrix A.
  209.  
  210.              FFFFOOOORRRRTTTTRRRRAAAANNNN
  211.              Array of dimension (lda, k).
  212.  
  213.              CCCC
  214.              A pointer to an array of size lda*k.
  215.              See note below about array storage convention for C.
  216.  
  217.              kkkk is mmmm when side = 'L' or 'l' or LeftSide and is nnnn when  side =
  218.              'R' or 'r' or RightSide.
  219.  
  220.              Before entry with uuuupppplllloooo ==== ''''UUUU'''' oooorrrr ''''uuuu'''' oooorrrr , the elements
  221.              corresponding to the leading  k by k upper triangular elements of
  222.              the matrix A must contain the upper triangular matrix and the
  223.              corresponding strictly lower triangular part of the matrix A is
  224.              not referenced.
  225.  
  226.              Before entry with uuuupppplllloooo ==== ''''LLLL'''' oooorrrr ''''llll'''' oooorrrr , the elements
  227.              corresponding to the leading k by k lower triangular elements of
  228.              the matrix A  must contain the lower triangular matrix and the
  229.              corresponding strictly upper triangular part of the matrix A is
  230.              not referenced.
  231.  
  232.              Note that when ddddiiiiaaaagggg ==== ''''UUUU'''' oooorrrr ''''uuuu'''' oooorrrr , the elements of _a
  233.              corresponding to the diagonal elements of the matrix A are not
  234.              referenced either, but are assumed to be unity.
  235.  
  236.              Unchanged on exit.
  237.  
  238.      llllddddaaaa     On entry, llllddddaaaa specifies the first dimension of A as declared in
  239.              the calling (sub) program. When side = 'L' or 'l' or LeftSide,
  240.              then lda must be at least max( 1, m ). When side = 'R' or 'r' or
  241.              RightSide, then lda must be at least max( 1, n ).
  242.              Unchanged on exit.
  243.  
  244.      BBBB       An array containing the matrix B.
  245.  
  246.              FFFFOOOORRRRTTTTRRRRAAAANNNN
  247.              An array of dimension ( ldb, n ).
  248.  
  249.              CCCC
  250.              A pointer to an array of size ldb*n.
  251.              See note below about array storage convention for C.
  252.  
  253.              Before entry, the leading m by n part of the array bbbb should
  254.              contain the elements corresponding to the m by n matrix B. On
  255.              exit it is overwritten by the transformed matrix.
  256.  
  257.  
  258.  
  259.  
  260.  
  261.                                                                         PPPPaaaaggggeeee 4444
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268. ____TTTTRRRRMMMMMMMM((((3333FFFF))))                                                            ____TTTTRRRRMMMMMMMM((((3333FFFF))))
  269.  
  270.  
  271.  
  272.      llllddddbbbb     On entry, llllddddbbbb specifies the first dimension of B as declared in
  273.              the calling (sub)program. ldb  must be at least max( 1, m ).
  274.              Unchanged on exit.
  275.  
  276.  
  277. CCCC AAAARRRRRRRRAAAAYYYY SSSSTTTTOOOORRRRAAAAGGGGEEEE CCCCOOOONNNNVVVVEEEENNNNTTTTIIIIOOOONNNN
  278.        The matrices  are assumed  to be stored in a  oooonnnneeee ddddiiiimmmmeeeennnnssssiiiioooonnnnaaaallll CCCC aaaarrrrrrrraaaayyyy
  279.        in an analogous fashion as a Fortran array (column major). Therefore,
  280.        the element  A(i+1,j)  of matrix A  is stored  immediately  after the
  281.        element  A(i,j), while  A(i,j+1) is lda  elements apart from  A(i,j).
  282.        The element A(i,j) of the matrix can be accessed directly by reference
  283.        to  a[ (j-1)*lda + (i-1) ].
  284.  
  285.  
  286.  
  287. AAAAUUUUTTTTHHHHOOOORRRRSSSS
  288.           Jack Dongarra, Argonne National Laboratory.
  289.           Iain Duff, AERE Harwell.
  290.           Jeremy Du Croz, Numerical Algorithms Group Ltd.
  291.           Sven Hammarling, Numerical Algorithms Group Ltd.
  292.  
  293.  
  294. TTTTUUUUNNNNIIIINNNNGGGG
  295.           Optimized and parallelized for SGI R3000, R4x00 and R8000 platforms.
  296.  
  297.  
  298.  
  299.  
  300.  
  301.  
  302.  
  303.  
  304.  
  305.  
  306.  
  307.  
  308.  
  309.  
  310.  
  311.  
  312.  
  313.  
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.                                                                         PPPPaaaaggggeeee 5555
  328.  
  329.  
  330.  
  331.